﻿namespace MicroCloud.Systems.Data
{
    /// <summary>
    /// 文件配置选项
    /// </summary>
    public class FileOption
    {
        /// <summary>
        /// 获取或设置 资源实际存放的磁盘根路径。例如：D:\\MyStaticFiles 或 .\\MyStaticFiles
        /// </summary>
        public string Root { get; set; }

        /// <summary>
        /// 获取或设置 映射到静态资源的相对请求路径。
        /// 例如：/StaticFiles
        /// </summary>
        public string RequestPath { get; set; }

        /// <summary>
        /// 是否开启目录浏览
        /// </summary>
        public bool DirectoryBrowser { get; set; }

        /// <summary>
        /// 获取或设置 是否允许跨域
        /// </summary>
        public bool AllowOrigin { get; set; }

        /// <summary>
        /// 获取或设置 是否启用版本管理
        /// （启用后删除、修改前的文件将作为历史版本归档）
        /// </summary>
        public bool VersionEnabled { get; set; }

        /// <summary>
        /// 获取或设置 存储分组
        /// </summary>
        public FileStoreGroup StoreGroup { get; set; }

        /// <summary>
        /// 获取或设置 文件大小限制
        /// </summary>
        public long SizeLimit { get; set; }

        /// <summary>
        /// 获取或设置 允许的上传类型
        /// </summary>
        public string[] AllowedExts { get; set; }

        /// <summary>
        /// 获取或设置 阻止的上传类型
        /// </summary>
        public string[] DisallowedExts { get; set; }

        ///// <summary>
        ///// 文件流配置
        ///// </summary>
        //public Mappings[] Mappings { get; set; }

    }

    /// <summary>
    /// 文件流映射
    /// </summary>
    public class Mappings
    {
        /// <summary>
        /// 文件类型
        /// </summary>
        public string FileType { get; set; }

        /// <summary>
        /// 内容类型
        /// </summary>
        public string ContentType { get; set; }
    }
}
